package com.musicstore.model;

import com.musicstore.model.Album;

public class Album {
	
	public Album() {		
	}	

	public Album(Album a_alb){
		this.id = -1;
		this.prix = a_alb.getPrix();
		this.reduction = a_alb.getReduction();
		this.titre = a_alb.getTitre();
		this.artiste = a_alb.getArtiste();
		this.style = a_alb.getStyle();
	}
	
	public Album(String a_titre, String a_artist, String a_style) {
		this.id = -1;
		this.titre = a_titre;
		this.artiste = a_artist;
		this.style = a_style;
		this.prix = -1;
	}
	
	public Album(String a_titre, String a_artist, String a_style, float a_prix) {
		this(a_titre,a_artist,a_style);
		this.prix = a_prix;
	}
	
	public Album(String a_titre, String a_artist, String a_style, float a_prix,float reduction){
		this(a_titre,a_artist,a_style,a_prix);
		this.reduction = reduction;
	}
		
	public Album(int a_id, String a_titre, String a_artist, String a_style, float a_prix) {
		this(a_titre,a_artist,a_style,a_prix);
	}
	
	public Album(int a_id, String a_titre, String a_artist, String a_style, float a_prix, float a_reduction) {
		this(a_titre,a_artist,a_style,a_prix,a_reduction);
	}
	
	public void update(Album a_newAlb){ //Sans update son id
		this.prix = a_newAlb.getPrix();
		this.reduction = a_newAlb.getReduction();
		this.titre = a_newAlb.getTitre();
		this.artiste = a_newAlb.getArtiste();
		this.style = a_newAlb.getStyle();
	}
	
	@Override
	public boolean equals(Object o) {
		if(o == null)  return false;
	    if(!(o instanceof Album)) return false;
	    
	    Album newAlb = (Album)o;
	    //if(newAlb.id == this.id) return false;
	    if(newAlb.titre.compareTo(this.titre) != 0) return false;
	    if(newAlb.artiste.compareTo(this.artiste) != 0) return false;
	    if(newAlb.style.compareTo(this.style) != 0) return false;
	    
		return true;		
	}
	
	@Override
	public int hashCode() {
		final StringBuilder prime = new StringBuilder("31");
		return prime.
	            append(titre).
	            append(style).
	            append(artiste).
	            append(prix).
	            hashCode();
	}

	private int id;
	private String titre;
	private String artiste;
	private String style;
	private float prix;
	private float reduction;
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getTitre() {
		return titre;
	}

	public void setTitre(String titre) {
		this.titre = titre;
	}

	public String getArtiste() {
		return artiste;
	}

	public void setArtiste(String artiste) {
		this.artiste = artiste;
	}

	public String getStyle() {
		return style;
	}

	public void setStyle(String style) {
		this.style = style;
	}

	public float getPrix() {
		return prix;
	}

	public void setPrix(float prix) {
		this.prix = prix;
	}

	public float getReduction() {
		return reduction;
	}

	public void setReduction(float reduction) {
		this.reduction = reduction;
	}
}
